home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
051-060
/
amok54
/
kruemel
/
kruemel.dok
< prev
next >
Wrap
Text File
|
1993-11-04
|
5KB
|
106 lines
Dokumentation zu Krümel
~~~~~~~~~~~~~~~~~~~~~~~
Kopierrecht
~~~~~~~~~~~
Das komplette Packet (Quelltext, Dokumentation und Objectcode) ist
Public Domain Software. Es darf beliebig kopiert und verbreitet werden
solange...
* mein Name und dieser Kopierrechtshinweis erhalten bleiben,
* die Vollständigkeit des ganzen Packets gewährleistet ist, und
* mit dem Vertrieb dieser Software kein Gewinn erwirtschaftet wird.
Verbesserungsvorschläge sind stets willkommen. Falls Ihr Veränderungen
am Programm vornehmt, dokumentiert diese bitte gut verständlich.
Es würde mich freuen, wenn Ihr mich über größere Veränderungen in
Kenntnis setzen würden.
Umfang des Packets
~~~~~~~~~~~~~~~~~~
Das komplette Packet ´Kruemel´ beinhaltet folgendes:
* Kruemel.dok Diese Dokumentation
* Kruemel.mod Der Quelltext
* Kruemel Das compilierte Programm
Allgemeines über zelluläre Automaten und den zyklischen Raum
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Zelluläre Automaten sind stillisierte, synthetische Universen... Sie haben
ihre eigene Matereie, die in ihrem eigenen Raum und ihrer eigenen Zeit
herumwirbelt."
T. Toffoli und N. Margolus
"Cellualar Automata Machines"
Das Programm Krümel ist ein solcher zellulärer Automat, er geht auf eine
Idee von David Griffeath zurück. Das Prinzip des Programms wird in
Spektrum der Wissenschaft 10/1989 vorgestellt :
"Ein zellulärer Automat besteht aus einer im Prinzip unendlichen,
gitterförmigen Anordnung von Zellen, deren jede verschiedene Zustände
einnehmen kann. Jede Zelle ändert ihren Zustand synchron zum Ticken
einer gedachten Uhr gemäß einigen Regeln. Auf dem Computer werden die
Zellen zweckmäßig als Pixel auf dem Bildschirm und ihre verschiedenen
Zustände durch Farben dargestellt. Mit geeigneten Regeln und Anfangs-
zuständen können zelluläre Automaten ganz erstaunliche Farbmuster erzeugen,
die sich mit der Zeit weiterentwickeln.
Griffeath Schöpfung, die den zyklischen Raum nennen will, beruht auf einer
geradezu absurd einfachen Regel, produziert damit aber eindrucksvolle
Phänomene von wissenschaftlichen Interesse und bezaubernder Schönheit :
Man nummeriert die möglichen Zustände von 0 bis n-1. Eine Zelle im
Zustand k frißt alle Zellen, die sich im gleichen Zeittakt im Zustand
k-1 befinden;
d.h. in diesem Falle, sie macht diese durch Einverleiben zu Ihresgleichen.
Aus dierser Regel entwickeln sich regelrechte Nahrungsketten: Eine Zelle im
Zustand 2 kann eine Nachbarzelle im Zustand 1 fressen, selbst wenn letztere
sich gerade eine Zelle im Zustand 0 einverleibt. Im zyklischen Raum aber hat
die Nahrungskette kein Ende, denn eine Zele im Zustand 0 frißt Nachbarzellen,
die sich im Zustand n-1 befinden: Fressen im zyklischen Raum spielt sich auf
der zyklischen Gruppe der Zahlen von 0 bis n-1 ab, wobei die Addition
modulo n auszuführen ist.
Aus Krümeln werden Krümelmonster
Mit dieser einfachen Regel kann der zyklische Raum zufällige Farbverteilungen
in stabile Spiralen verwandeln. Griffeat bezeichnet den zufälligen
Anfangszustand mit guten Gründen als Krümelhaufen, sieht er doch tatsächlich
ziemlich durcheinander aus. Nach einiger Zeit bilden sich kleine Keime, über
deren Oberfläche Farbwellen hinwegziehen. Die Keime werden immer größer, bis
sie den zyklischen Raum ausfüllen. Jetzt beginnen sich kristaline Spiralen zu
entwicklen - elegante Gebilde, die sich rotierend ihrer Umgebung einverleiben.
Lede Spirale ensteht aus etwas, was Griffeath einen Kristalldefekt nennt. Die
Spiralen wachsen mit erhabener Würde heran, geraten aber schließlich in einen
Konkurenzkampf um den verfügbaren Raum. Einige unterliegen, andere aber -
nennen wir sie Krümelmonster - überleben und und beherrschen die lezte Phase
des zyklischen Raums.
Unabhängig von der Anzahl der möglichen bildet sich immer das selbe
Szenario aus :
Auf Krümelhaufen folgen Keimem Kristaldefekte, Krümelmonster. Die ersten
drei Phasen sind metastabil, d.h. sie bleiben über viele Zyklen bestehen, ehe
sie der nächsten Phase weichen."
Damit man die unedliche Fläche erhält von der oben gesprochen wurde, muß man
ein Feld von beispielsweise 100x100 von 0 bis 99 initialisieren und an den
Rändern mit einander verbinden, sodaß beispielsweise bei einem Feld der
rechte Nachbar der Zelle (99,24) (0,24) ist. Dies wird erreicht, indem man
die Nachbarzellen durch Modulo-Arithmetik berechnet."
Das Programm :
~~~~~~~~~~~~~~
Am Anfang wird die Farbtiefe des zyklischen Raumes eingeben, zulässig sind
Werte von 1 bis 16, schöne Krümelmonster erhält mit Werten von 12 bis 16.
Anschließend wird die Breite und die Höhe eingegeben, hier sind Werte von
10 bis 100 erlaubt. (Man kann theoretisch die Fläche auch vergrößern, das
ist nicht weiters schwer, aber es geht dann alles sehr viel langsamer.
Die laufenden Brechnungen werden durch Tastendruck unterbrochen. Danach kann
das Programm beenden oder von vorne beginnen.
Es ist ganz gut wenn man etwas Geduld mitbringt, wenn man sich an den
Bildschirm setzt und wartet bis sich die Krümelmonster über die unschuldigen
Krümel hermachen.
viel Spaß
Tommy